<html>
<head><meta charset="utf-8"><title>evil preds in param env #86580 · project-const-generics · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/index.html">project-const-generics</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html">evil preds in param env #86580</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="246132663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132663">(Jul 15 2021 at 18:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> :)</p>



<a name="246132676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132676">(Jul 15 2021 at 18:02)</a>:</h4>
<p>wave</p>



<a name="246132723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132723">(Jul 15 2021 at 18:02)</a>:</h4>
<p>have you looked at the PR yet?</p>



<a name="246132746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132746">(Jul 15 2021 at 18:02)</a>:</h4>
<p>Nope, I'm looking now...</p>



<a name="246132764"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132764" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132764">(Jul 15 2021 at 18:02)</a>:</h4>
<p>First trying to undersatnd the problem</p>



<a name="246132844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132844">(Jul 15 2021 at 18:03)</a>:</h4>
<p>I don't quite understand what's causing the ICE</p>



<a name="246132885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132885">(Jul 15 2021 at 18:03)</a>:</h4>
<p>well, ok, <em>maybe</em> I do</p>



<a name="246132914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132914">(Jul 15 2021 at 18:03)</a>:</h4>
<p>the ICE that the PR fixes or the ICE's on the two code snippets at the bottom of PR description?</p>



<a name="246132923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132923">(Jul 15 2021 at 18:04)</a>:</h4>
<p>so the anonymous constant <code>{ N + 1 }</code> has the same generics as its parent, probably</p>



<a name="246132979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132979">(Jul 15 2021 at 18:04)</a>:</h4>
<p>that it fixes</p>



<a name="246132985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132985">(Jul 15 2021 at 18:04)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="cp">#![feature(const_evaluatable_checked, const_generics, const_generics_defaults)]</span><span class="w"></span>
<span class="cp">#![allow(incomplete_features)]</span><span class="w"></span>

<span class="k">pub</span><span class="w"> </span><span class="k">struct</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">N</span>: <span class="kt">usize</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">M</span>: <span class="kt">usize</span> <span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="k">pub</span><span class="w"> </span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">N1</span>: <span class="kt">usize</span><span class="o">&gt;</span><span class="p">()</span><span class="w"> </span>-&gt; <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">N1</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">loop</span><span class="w"> </span><span class="p">{}</span><span class="w"> </span><span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
</code></pre></div>



<a name="246132990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246132990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246132990">(Jul 15 2021 at 18:04)</a>:</h4>
<p>ah yep</p>



<a name="246133039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133039">(Jul 15 2021 at 18:04)</a>:</h4>
<p>so currently (before my PR) the anon ct <code>{ N + 1 }</code> has all of the parent's generics provided (with appropriate feature gates)</p>



<a name="246133071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133071">(Jul 15 2021 at 18:04)</a>:</h4>
<p>so <code>{ N + 1 }</code> has a <code>type_of</code> (I guess) that looks like <code>ConstKind::Unevaluated({N + 1}, substs: [N, M])</code></p>



<a name="246133088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133088">(Jul 15 2021 at 18:05)</a>:</h4>
<p>ok</p>



<a name="246133106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133106">(Jul 15 2021 at 18:05)</a>:</h4>
<p>and then we try to apply a substitution with <em>the constants we've seen so far</em>, basically</p>



<a name="246133121"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133121" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133121">(Jul 15 2021 at 18:05)</a>:</h4>
<p>yea ^^</p>



<a name="246133127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133127">(Jul 15 2021 at 18:05)</a>:</h4>
<p>and we wind up with an ICE because <code>M</code> (which appears in the <code>substs</code>) is out of range</p>



<a name="246133128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133128">(Jul 15 2021 at 18:05)</a>:</h4>
<p>ok</p>



<a name="246133149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133149">(Jul 15 2021 at 18:05)</a>:</h4>
<p>when we build the substs for <code>Bar&lt;N1&gt;</code> we subst each default with  partially built substs</p>



<a name="246133191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133191">(Jul 15 2021 at 18:05)</a>:</h4>
<p>yes</p>



<a name="246133282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133282">(Jul 15 2021 at 18:06)</a>:</h4>
<p>now I'm trying to figure out what the PR <em>does</em></p>



<a name="246133451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133451">(Jul 15 2021 at 18:07)</a>:</h4>
<p>so---</p>



<a name="246133508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133508">(Jul 15 2021 at 18:08)</a>:</h4>
<p>you are modifying <code>generics_of</code> when invoked on an anonymous constant</p>



<a name="246133593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133593">(Jul 15 2021 at 18:08)</a>:</h4>
<p>presumably so that it has the list <code>[N]</code> instead of <code>[N, M]</code>, right?</p>



<a name="246133630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133630">(Jul 15 2021 at 18:09)</a>:</h4>
<p>and we know that name resolution would have errored out if <code>M</code> were used?</p>



<a name="246133648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133648">(Jul 15 2021 at 18:09)</a>:</h4>
<p>Kind of</p>



<a name="246133664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133664">(Jul 15 2021 at 18:09)</a>:</h4>
<p>it would error if we <em>explicitly</em> wrote <code>M</code></p>



<a name="246133693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133693">(Jul 15 2021 at 18:09)</a>:</h4>
<p>yes, I was going to mention the parameter environment</p>



<a name="246133715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133715">(Jul 15 2021 at 18:09)</a>:</h4>
<p>e.g. you might have <code>N: Foo&lt;M&gt;</code></p>



<a name="246133787"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133787" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133787">(Jul 15 2021 at 18:10)</a>:</h4>
<p>(right?)</p>



<a name="246133794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133794">(Jul 15 2021 at 18:10)</a>:</h4>
<p>as in <code>const N: Foo&lt;M&gt;</code> ?</p>



<a name="246133809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133809">(Jul 15 2021 at 18:10)</a>:</h4>
<p>or are you showing a where clause there</p>



<a name="246133820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133820">(Jul 15 2021 at 18:10)</a>:</h4>
<p>oh, well, these are constants</p>



<a name="246133831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133831">(Jul 15 2021 at 18:10)</a>:</h4>
<p>I meant a where clause</p>



<a name="246133839"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133839" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133839">(Jul 15 2021 at 18:10)</a>:</h4>
<p>but I guess something like <code>where (): Foo&lt;N, M&gt;</code></p>



<a name="246133926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133926">(Jul 15 2021 at 18:11)</a>:</h4>
<p>yeah you can write this <code>pub struct Bar&lt;const N: usize = { &lt;()&gt;::Assoc }&gt; where (): Foo&lt;N&gt;;</code></p>



<a name="246133961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246133961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246133961">(Jul 15 2021 at 18:11)</a>:</h4>
<p>and <code>(): Foo&lt;N&gt;</code> will be in the param env of that anon ct</p>



<a name="246134045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134045">(Jul 15 2021 at 18:12)</a>:</h4>
<p>yep</p>



<a name="246134054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134054">(Jul 15 2021 at 18:12)</a>:</h4>
<p>we've encountered problems like this before</p>



<a name="246134068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134068">(Jul 15 2021 at 18:12)</a>:</h4>
<p>I remember we had a whole meeting on the topic :)</p>



<a name="246134081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134081">(Jul 15 2021 at 18:12)</a>:</h4>
<p>I presume you are not attempting to address that sort of problem in this PR</p>



<a name="246134105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134105">(Jul 15 2021 at 18:12)</a>:</h4>
<p>yeah there's the whole unused substs issue for ct's in where clauses</p>



<a name="246134123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134123">(Jul 15 2021 at 18:12)</a>:</h4>
<p>i think that is (hopefully) out of scope for this PR</p>



<a name="246134183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134183">(Jul 15 2021 at 18:13)</a>:</h4>
<p>I think so</p>



<a name="246134190"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134190" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134190">(Jul 15 2021 at 18:13)</a>:</h4>
<p>im not actually sure if the solutions would overlap</p>



<a name="246134207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134207">(Jul 15 2021 at 18:13)</a>:</h4>
<p>previous discussions have been about removing unused where clauses</p>



<a name="246134220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134220">(Jul 15 2021 at 18:13)</a>:</h4>
<p>wheras the issue here is more that <code>(): Foo&lt;N&gt;</code> is actually used</p>



<a name="246134284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134284">(Jul 15 2021 at 18:14)</a>:</h4>
<p>Yes, what I might imagine is that you would get an error</p>



<a name="246134307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134307">(Jul 15 2021 at 18:14)</a>:</h4>
<p>just as if you had directly referenced it</p>



<a name="246134348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134348">(Jul 15 2021 at 18:14)</a>:</h4>
<p>oh</p>



<a name="246134354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134354">(Jul 15 2021 at 18:14)</a>:</h4>
<p>I just had a thought</p>



<a name="246134361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134361">(Jul 15 2021 at 18:14)</a>:</h4>
<p>only semi-related, <em>but</em></p>



<a name="246134408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134408">(Jul 15 2021 at 18:15)</a>:</h4>
<p>instead of "pruning" down the where clauses</p>



<a name="246134415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134415">(Jul 15 2021 at 18:15)</a>:</h4>
<p>we could introduce existentials</p>



<a name="246134454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134454">(Jul 15 2021 at 18:15)</a>:</h4>
<p>I don't think that fits into the subset of horn clauses chalk presently targets</p>



<a name="246134469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134469">(Jul 15 2021 at 18:15)</a>:</h4>
<p>but it'd be a much easier representation</p>



<a name="246134484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134484">(Jul 15 2021 at 18:15)</a>:</h4>
<p>basically</p>



<a name="246134553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134553">(Jul 15 2021 at 18:16)</a>:</h4>
<p>if you had <code>where (): Foo&lt;N, M&gt;</code> (say) and we were in a context where we want to exclude <code>M</code></p>



<a name="246134577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134577">(Jul 15 2021 at 18:16)</a>:</h4>
<p>we would replace that with <code>exists&lt;M&gt; { (): Foo&lt;N, M&gt; }</code>, essentially</p>



<a name="246134594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134594">(Jul 15 2021 at 18:16)</a>:</h4>
<p>...have to think if that's useful anywhere, defintiely out of scope for this PR...</p>



<a name="246134771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134771">(Jul 15 2021 at 18:18)</a>:</h4>
<p>anyway, ok, I understand what this PR does, more or less</p>



<a name="246134791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134791">(Jul 15 2021 at 18:18)</a>:</h4>
<p>the chalk stuff is a bit over my head at this point ^^</p>



<a name="246134805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134805">(Jul 15 2021 at 18:18)</a>:</h4>
<p>you mentioned other ICEs</p>



<a name="246134810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134810">(Jul 15 2021 at 18:18)</a>:</h4>
<p>(earlier in this topic)</p>



<a name="246134813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134813">(Jul 15 2021 at 18:18)</a>:</h4>
<p>right</p>



<a name="246134822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134822">(Jul 15 2021 at 18:18)</a>:</h4>
<p>were you just referring to the parameter environment stuff we've been talking about, or is there something else?</p>



<a name="246134835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134835">(Jul 15 2021 at 18:18)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">N</span>: <span class="kt">usize</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="k">const</span><span class="w"> </span><span class="n">N</span>: <span class="kt">usize</span> <span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="p">}</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="p">()</span>: <span class="nc">Foo</span><span class="o">&lt;</span><span class="n">N</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
</code></pre></div>
<p>this is also a param env issue</p>



<a name="246134848"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134848" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134848">(Jul 15 2021 at 18:18)</a>:</h4>
<p>kinda the same thing really</p>



<a name="246134855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134855">(Jul 15 2021 at 18:18)</a>:</h4>
<p>yes</p>



<a name="246134902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134902">(Jul 15 2021 at 18:19)</a>:</h4>
<p>I see, I see</p>



<a name="246134908"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134908" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134908">(Jul 15 2021 at 18:19)</a>:</h4>
<p>yes, your two examples cover the two cases we talked about</p>



<a name="246134918"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134918" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134918">(Jul 15 2021 at 18:19)</a>:</h4>
<p>I think I am happy to r+ this though</p>



<a name="246134922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134922">(Jul 15 2021 at 18:19)</a>:</h4>
<p>it feels like "progress"</p>



<a name="246134960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134960">(Jul 15 2021 at 18:19)</a>:</h4>
<p>:)</p>



<a name="246134985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246134985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246134985">(Jul 15 2021 at 18:20)</a>:</h4>
<p>I think the other thing im unclear on is how <code>Self</code> fits into "forward declared params"</p>



<a name="246135058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135058">(Jul 15 2021 at 18:20)</a>:</h4>
<p>we dont allow it for defaults in adt's but we do in defaults on traits</p>



<a name="246135151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135151">(Jul 15 2021 at 18:21)</a>:</h4>
<p>i think that the way i changed <code>explicit_preds_of</code> to return the parent's preds means that we wont be getting the <code>Self: Trait&lt;N&gt;</code> predicate that is there on <code>trait Trait&lt;const N: usize&gt;</code></p>



<a name="246135179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135179">(Jul 15 2021 at 18:21)</a>:</h4>
<p>since that's added in <code>predicates_of</code> if i understand that code correctly?</p>



<a name="246135216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135216">(Jul 15 2021 at 18:21)</a>:</h4>
<p><span class="user-mention silent" data-user-id="326176">Boxy [she/her]</span> <a href="#narrow/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580/near/246134985">said</a>:</p>
<blockquote>
<p>I think the other thing im unclear on is how <code>Self</code> fits into "forward declared params"</p>
</blockquote>
<p>what do you mean by this</p>



<a name="246135222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135222">(Jul 15 2021 at 18:21)</a>:</h4>
<p>like where it appears in the ordering?</p>



<a name="246135249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135249">(Jul 15 2021 at 18:21)</a>:</h4>
<p>I tend to write it like <code>P0: Trait&lt;P1...Pn&gt;</code> to make that clear :)</p>



<a name="246135292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135292">(Jul 15 2021 at 18:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="326176">Boxy [she/her]</span> <a href="#narrow/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580/near/246135151">said</a>:</p>
<blockquote>
<p>i think that the way i changed <code>explicit_preds_of</code> to return the parent's preds means that we wont be getting the <code>Self: Trait&lt;N&gt;</code> predicate that is there on <code>trait Trait&lt;const N: usize&gt;</code></p>
</blockquote>
<p>I see</p>



<a name="246135320"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135320" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135320">(Jul 15 2021 at 18:22)</a>:</h4>
<p>That was part of the PR I wanted to look at a bit more closely</p>



<a name="246135347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135347">(Jul 15 2021 at 18:22)</a>:</h4>
<p>I don't love that we add <code>Self: Trait&lt;..&gt;</code> to the trait predicates, side note</p>



<a name="246135384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135384">(Jul 15 2021 at 18:22)</a>:</h4>
<p><code>struct Foo&lt;const N: usize = { /* mentions Self */ }&gt;</code> we forbid <code>Self</code> here but not in<br>
<code>trait Foo&lt;const N: usize = { /* mentions Self */ }&gt;</code></p>



<a name="246135385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135385">(Jul 15 2021 at 18:22)</a>:</h4>
<p>(I know why we do, it's just grody, I wonder if we could tweak it)</p>



<a name="246135397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135397">(Jul 15 2021 at 18:22)</a>:</h4>
<p>iirc I added that so that default functions would work</p>



<a name="246135451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135451">(Jul 15 2021 at 18:23)</a>:</h4>
<p>well, so <code>Self</code> in the <code>struct Foo</code> case refers to <code>Foo&lt;N&gt;</code></p>



<a name="246135459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135459">(Jul 15 2021 at 18:23)</a>:</h4>
<p>so it makes sense that it would be forbidden</p>



<a name="246135471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135471">(Jul 15 2021 at 18:23)</a>:</h4>
<p>as it <em>must</em> reference the parameter it is not supposed to reference</p>



<a name="246135507"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135507" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135507">(Jul 15 2021 at 18:23)</a>:</h4>
<p>but in the <em>trait</em> case it is a type parameter</p>



<a name="246135625"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135625" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135625">(Jul 15 2021 at 18:24)</a>:</h4>
<p>ah right, I suppose you cant "get to" the params on the trait from the <code>Self</code> type without the <code>Self: Trait&lt;N&gt;</code> predicate</p>



<a name="246135654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135654">(Jul 15 2021 at 18:24)</a>:</h4>
<p>correct</p>



<a name="246135715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135715">(Jul 15 2021 at 18:24)</a>:</h4>
<p>I guess it's not a bad thing that anon ct defaults wont be getting the <code>Self: Trait&lt;N&gt;</code> predicate then i think</p>



<a name="246135766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135766">(Jul 15 2021 at 18:25)</a>:</h4>
<p>heh, yes, they can probably only misuse it</p>



<a name="246135857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135857">(Jul 15 2021 at 18:26)</a>:</h4>
<p>since the <code>Self</code> param comes before all the other generics I suppose that means that my code in generics of that removes fwd declared params will leave <code>Self</code> in</p>



<a name="246135900"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246135900" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246135900">(Jul 15 2021 at 18:26)</a>:</h4>
<p>I'm not sure if that is a problem or not</p>



<a name="246136010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136010">(Jul 15 2021 at 18:27)</a>:</h4>
<p>probably something to solve when figuring out specifically waht to do about those two ICEs from before</p>



<a name="246136061"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136061" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136061">(Jul 15 2021 at 18:27)</a>:</h4>
<p>doesn't seem like a problem</p>



<a name="246136114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136114">(Jul 15 2021 at 18:28)</a>:</h4>
<p>I left a review</p>



<a name="246136125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136125">(Jul 15 2021 at 18:28)</a>:</h4>
<p>the main thing is that I think we should improve the comments</p>



<a name="246136152"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136152" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136152">(Jul 15 2021 at 18:28)</a>:</h4>
<p>I find it's always really helpful to include code examples and explain what is going on in terms of those</p>



<a name="246136183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136183">(Jul 15 2021 at 18:28)</a>:</h4>
<p>ah right this definitely deserves some comments lol</p>



<a name="246136196"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136196" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136196">(Jul 15 2021 at 18:28)</a>:</h4>
<p>its a bit subtle ^^'</p>



<a name="246136205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136205">(Jul 15 2021 at 18:28)</a>:</h4>
<p>ping me once you get a chance to add them and I'll r+?</p>



<a name="246136220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136220">(Jul 15 2021 at 18:29)</a>:</h4>
<p>okay, thanks :)</p>



<a name="246136234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136234">(Jul 15 2021 at 18:29)</a>:</h4>
<p>great!</p>



<a name="246136249"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136249" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136249">(Jul 15 2021 at 18:29)</a>:</h4>
<p>ciao, gotta run to my next slot :P</p>



<a name="246136273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246136273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246136273">(Jul 15 2021 at 18:29)</a>:</h4>
<p>perfect timing <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="246174492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/260443-project-const-generics/topic/evil%20preds%20in%20param%20env%20%2386580/near/246174492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Boxy [she/her] <a href="https://rust-lang.github.io/zulip_archive/stream/260443-project-const-generics/topic/evil.20preds.20in.20param.20env.20.2386580.html#246174492">(Jul 16 2021 at 01:01)</a>:</h4>
<blockquote>
<p>ping me once you get a chance to add them and I'll r+?</p>
</blockquote>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> not quite sure if you meant here or on the PR but either way pushed some comments ^^</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>